package cn.itcast.order.config.ijpay.alipay;

import cn.itcast.order.util.PathConverter;
import lombok.Data;
import lombok.ToString;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

import java.io.Serializable;

/**
 * <p>支付宝配置 Bean</p>
 *
 * @author sxt
 */
@Data
@ToString
public class AliPayBean implements Serializable {
    /**
     * 应用编号
     */
    private String appId = "";

    /**
     * 应用私钥
     */
    private String privateKey = "";

    /**
     * 支付宝公钥，通过应用公钥上传到支付宝开放平台换取支付宝公钥(如果是证书模式，公钥与私钥在CSR目录)。
     */
    private String publicKey = "";

    /**
     * 应用公钥证书 (证书模式必须)
     */
    private String appCertPath = "";

    /**
     * 支付宝公钥证书 (证书模式必须)
     */
    private String aliPayCertPath = "";

    /**
     * 支付宝根证书 (证书模式必须)
     */
    private String aliPayRootCertPath = "";

    /**
     * 支付宝支付网关
     */
    private String serverUrl = "";

    /**
     * 外网访问项目的域名，支付通知中会使用
     */
    private String domain = "";

    /**
     * 签名类型
     */
    private String signType = "RSA2";

    /**
     * 是否证书模式
     */
    private boolean certType = true;

    public void setAliPayRootCertPath(String aliPayRootCertPath) {
        this.aliPayRootCertPath = PathConverter.convertToAbsolutePath(aliPayRootCertPath);
    }

    public void setAliPayCertPath(String aliPayCertPath) {
        this.aliPayCertPath = PathConverter.convertToAbsolutePath(aliPayCertPath);
    }

    public void setAppCertPath(String appCertPath) {
        this.appCertPath = PathConverter.convertToAbsolutePath(appCertPath);
    }
}
